# 取得原始碼
git clone https://github.com/dotnet/sdk.git
cd sdk
# Windows 建置(需已安裝 VS 跟 prerequisite)
build.cmd -c Release
# 快速編譯核心 CLI 可:
build.cmd -subset Cli -c Debug
常見前置:
目錄 | 用途 | 重點檔案 / 子目錄 |
---|---|---|
src/Cli |
解析使用者輸入的 dotnet <command> 指令框架 |
dotnet/Program.cs 、命令註冊表、help 系統 |
src/Tasks |
MSBuild Task 實作(例如解析資產、生成 deps.json) | GenerateDepsFile , ResolvePackageAssets |
src/Resolvers |
Sdk / 工作負載解析邏輯 | SdkResolver* 類別 |
src/StaticWebAssetsSdk |
Web 靜態資產佈署/融合 | Razor / Blazor 建置鏈結合 |
src/Workload* |
工作負載安裝、更新、manifest 管理 | 安裝策略、Roll-forward 檢查 |
src/Assets |
預置模板、targets、props | Microsoft.NET.Sdk.*.targets/props |
templates |
CLI 內建或測試模板 | console / classlib / minimal api |
eng/ |
建置腳本、版本管理(Version.Details.xml) | 來源依賴版本鎖定 |
artifacts/ |
建置輸出 | bin / log / package |
dotnet build MyProj.csproj
├─ 啟動 host (apphost) 載入 dotnet.dll
├─ 解析第一個引數:內建指令 / global tool / 路徑 / dll
├─ 建立命令模型(command descriptor)
├─ 解析與驗證參數、環境變數合併
├─ 呼叫對應 handler(例如 BuildCommand)
│ └─ 建立 MSBuild Invocation (傳入 global properties)
│ └─ MSBuild 評估專案 -> 執行 Targets & Tasks
└─ 回傳 Exit Code
核心程式碼點:
src/Cli/dotnet/Parser
相關類別(System.CommandLine 演進版)BuiltInCommands.cs
收錄像 build / run / publish / restore ...Reporting
/ Telemetry
模組